package com.kb.medical.util;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 使用要导入import static Base.Text_Pdf.extractTextFromPdf;
 * 赋值参数 ：String pdfPath
 * 调用执行：Text_Pdf.extractTextFromPdf(pdfPath);
 */
public class Text_Pdf {


    /**
     * 提取pdf的文字和图片
     *
     * @param pdfPath pdf路径+名字
     */
    public static void extractTextFromPdf(String pdfPath) {

        try {
            // exe文件路径
            String exePath = "D:\\javacode\\medical\\src\\main\\java\\com\\kb\\medical\\util\\pdfTxt\\test_pdf.exe";

            // 启动进程
            ProcessBuilder pb = new ProcessBuilder(exePath, pdfPath);
            pb.redirectErrorStream(true);
            Process p = pb.start();
            p.waitFor();
        } catch (IOException | InterruptedException e) {  // 异常处理
            e.printStackTrace();
            System.out.println("提取文本异常");
        }
    }


    /**
     * 删除提取后的异常图片
     *
     * @param imgPath 图片的文件夹路径
     */
    public static void deleteImgError(String imgPath) {
        try {
            // exe文件路径
            String exePath = "D:\\javacode\\medical\\src\\main\\java\\com\\kb\\medical\\util\\imgError\\pic_error.exe";

            //启动进程
            ProcessBuilder pb = new ProcessBuilder(exePath, imgPath);
            pb.redirectErrorStream(true);
            Process p = pb.start();
            p.waitFor();
        } catch (IOException | InterruptedException e) {  // 异常处理
            e.printStackTrace();
            System.out.println("删除图片异常");
        }

    }


    // 从文件中读取内容
    public static String readFileContent(File file) {
        StringBuilder content = new StringBuilder();
        try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
            String line;
            while ((line = reader.readLine()) != null) {
                content.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return content.toString();
    }


    //获取文件名的数字
    public static Integer getNumberFromString(String fileName) {
        String regex = ".*?(\\d+).*?"; // 正则表达式，用于匹配数字
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(fileName);
        if (matcher.matches()) {
            String number = matcher.group(1); // 获取匹配的数字
            int result = Integer.parseInt(number); //字符串转int类型
//            System.out.println(result);
            return result;
        }
        return null;
    }
}
